# 不变的数据封装到测试方法中,将变化的数据传参
# 定义类属性
# 1导包
import requests

# 2创建tpshop package类
class Tp_shopapi(object):
    # 设置session的初始值
    session = None
# 使用类方法
    @classmethod
    # 定义获得验证码的方法
    def __get_verify(cls):
        # 如果session的初始值为空,此设置是可以反复调用
        if cls.session is None:
            # 发送验证码请求
            url_v = "http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=verify"
            # 这里是实例化session对象
            cls.session = requests.session()
            # 获取到url_v的值
            cls.session.get(url_v)
# 使用类方法
    @classmethod
    # 定义登录的方法,将可变的data列表传参到数据中
    def login(cls, formdata):
        # 获取验证码
        cls.__get_verify()
        # 发送登录请求
        url_login = "http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=do_login"
        resp = cls.session.post(url_login, data=formdata)
        # 每次登录成功都要释放session,所以需要有一个free 色诶哦你的方法
        cls.__free_session()
        # 返回响应结果
        return resp
# 使用类方法
    @classmethod
    # 定义 free seeion 的方法,
    def __free_session(cls):
        # 如果session的值不为空
        if cls.session:
            # 关闭session
            cls.session.close()
            # session的值设定为初始值
            cls.session = None
